home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / phpinfo.nasl < prev    next >
Text File  |  2005-03-31  |  3KB  |  89 lines

  1. #
  2. # This script was written by Randy Matz <rmatz@ctusa.net>
  3. #
  4. # Improvement by rd: look in every dir for info.php and phpinfo.php
  5. # not just in cgi-bin
  6.  
  7. if(description)
  8. {
  9.  script_version ("$Revision: 1.6 $");
  10.  script_id(11229);
  11.  
  12.  name["english"] = "phpinfo.php";
  13.  name["francais"] = "phpinfo.php";
  14.  script_name(english:name["english"], francais:name["francais"]);
  15.  
  16.  desc["english"] = "
  17. Many PHP installation tutorials instruct the user to create
  18. a file called phpinfo.php.  This file is often times left in 
  19. the root directory after completion.
  20. Some of the information that can be garnered from this file 
  21. includes:  The username of the user who installed php, if they 
  22. are a SUDO user, the IP address of the host, the web server 
  23. version, The system version(unix / linux), and the root 
  24. directory of the web server.
  25.  
  26. Solution : remove it
  27. Risk factor : Low";
  28.  
  29.  script_description(english:desc["english"]);
  30.  summary["english"] = "Checks for the presence of phpinfo.php";
  31.  summary["francais"] = "VΘrifie la prΘsence de phpinfo.php";
  32.  script_summary(english:summary["english"], francais:summary["francais"]);
  33.  script_category(ACT_GATHER_INFO);
  34.  script_copyright(english:"This script is Copyright (C) 2003 Randy Matz",
  35.                 francais:"Ce script est Copyright (C) 2003 Randy Matz");
  36.  family["english"] = "CGI abuses";
  37.  family["francais"] = "Abus de CGI";
  38.  script_family(english:family["english"], francais:family["francais"]);
  39.  script_require_ports("Services/www", 80);
  40.  script_dependencies("http_version.nasl");
  41.  exit(0);
  42. }
  43.  
  44. #
  45. # The script code starts here
  46. #
  47. include("http_func.inc");
  48. include("http_keepalive.inc");
  49.  
  50. port = get_http_port(default:80);
  51.  
  52. if(!get_port_state(port))exit(0);
  53. if(!can_host_php(port:port))exit(0);
  54.  
  55. dirs = get_kb_list(string("www/", port, "/content/directories"));
  56. if(isnull(dirs))dirs = make_list("");
  57. else dirs = make_list("", dirs);
  58.  
  59. rep = NULL;
  60.  
  61. foreach dir (dirs)
  62. {
  63.  req = http_get(item:string(dir, "/phpinfo.php"), port:port);
  64.  res = http_keepalive_send_recv(port:port, data:req);
  65.  if( res == NULL ) exit(0);
  66.  if("<title>phpinfo()</title>" >< res)
  67.      rep += dir + '/phpinfo.php\n';
  68.  
  69.   req = http_get(item:string(dir, "/info.php"), port:port);
  70.   res = http_keepalive_send_recv(port:port, data:req);
  71.   if( res == NULL ) exit(0);
  72.   if("<title>phpinfo()</title>" >< res)    
  73.       rep += dir + '/info.php\n';
  74. }
  75.  
  76.  
  77. if(rep != NULL)
  78. {
  79.  report = string("
  80. The following files are calling the function phpinfo() which
  81. disclose potentially sensitive information to the remote attacker : 
  82. ", rep, "
  83.  
  84. Solution : Delete them or restrict access to them
  85. Risk factor : Low");
  86.  
  87.  security_warning(port:port, data:report);
  88. }
  89.